#!/bin/bash
set -e

echo "开始执行Laravel项目部署脚本..."

# 检查composer.json是否存在
if [ -f composer.json ]; then
  echo "检测到composer.json，开始部署..."

  # 复制.env文件
  echo "复制.env.example到.env..."
  cp .env.example .env

  # 安装Composer依赖
  echo "安装Composer依赖..."
  composer install --optimize-autoloader

  # 生成应用密钥
  echo "生成应用密钥..."
  php artisan key:generate

  # 执行数据库迁移
  echo "执行数据库迁移..."
  php artisan migrate --force

  # 设置存储目录权限
  echo "设置存储目录权限..."
  chown -R www-data:www-data /var/www/laravel/storage /var/www/laravel/bootstrap/cache

  # 配置cron任务
  echo "配置cron任务..."
  echo '0 3-8 * * * php /var/www/laravel/artisan schedule:run >> /var/www/laravel/storage/logs/scheduler.log 2>&1' > /etc/cron.d/laravel-scheduler
  chmod 0644 /etc/cron.d/laravel-scheduler
  crontab /etc/cron.d/laravel-scheduler

  # 生产环境优化
  if [ "$DEPLOY_ENV" = "production" ]; then
    echo "生产环境优化..."
    php artisan config:cache
    php artisan route:cache
    php artisan optimize
  fi

  echo "Laravel项目部署完成，即将启动php-fpm..."
else
  echo "未检测到composer.json，等待中..."
  tail -f /dev/null
fi

# 执行CMD中的命令
exec "$@"